package cn.yuanqiao.archive.management.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 打包Mapper接口
 * 
 * @author sy
 * @date 2023-07-10
 */
@Mapper
public interface PackMapper
{
    /**
     * 查询门类分表
     *
     * @param categoryTable 门类表
     * @return 门类分表的信息
     */
//    @MapKey("GROUP_ID")
    public List<Map<String,Object>> selectCategory(@Param("categoryTable") String categoryTable, @Param("categoryId")Long categoryId);

    /**
     * 查询元数据分表
     *
     * @param mdataTable 门类表
     * @return 元数据分表的信息
     */
//    @MapKey("ID")
    public List<Map<String,Object>> selectMdata(@Param("mdataTable") String mdataTable, @Param("groupId")Long groupId, @Param("type")int type);

    /**
     * 查询元数据分表
     *
     * @param mdataTable 门类表
     * @return 元数据分表的信息
     */
    public List<Map<String,Object>> selectMdataSub(@Param("mdataTable") String mdataTable, @Param("groupId") Long groupId, @Param("bianhao") String bianhao, @Param("type") int type);

    /**
     * 查询档号规则分表
     *
     * @param codeListTable 档号规则分表
     * @return 档号规则分表的信息
     */
    public List<Map<String,Object>> selectCodeList(@Param("codeListTable") String codeListTable, @Param("codeRuleTable") String codeRuleTable, @Param("vfeType") String vfeType, @Param("categoryId")Long categoryId);

    /**
     * 查询符合组盘规则的ID
     *
     * @param DA_TABLE 门类表
     * @return 查询符合组盘规则的ID
     */
//    public List<Map<String,String>> selectDa(@Param("DA_TABLE") String DA_TABLE, YqZpgz yqZpgz);
    List<Map<String, Object>> selectDa(@Param("DA_TABLE") String DA_TABLE, @Param("ids") String ids);

    /**
     * 查询电子文件分表内的信息
     *
     * @param EFILE_TABLE_NAME 门类表
     * @return 查询电子文件分表内的信息
     */
    public List<Map<String,Object>> selectEfile(@Param("EFILE_TABLE_NAME") String EFILE_TABLE_NAME, @Param("ids") String ids);

    /**
     * 查询卷与件关联分表内的信息
     *
     * @param folder 卷与件关联分表
     * @return 查询卷与件关联分表内的信息
     */
    public List<Map<String,Object>> selectFolder(@Param("folder") String folder, @Param("ids") String ids);

    /**
     * 查询字典类型分表内的信息
     *
     * @param dictTypeTable 字典类型分表
     * @return 查询字典类型分表内的信息
     */
    public List<Map<String,Object>> selectDictType(@Param("dictTypeTable") String dictTypeTable, @Param("status") String status);

    /**
     * 查询字典数据分表内的信息
     *
     * @param dictDataTable 字典数据分表
     * @return 查询字典数据分表内的信息
     */
    public List<Map<String,Object>> selectDictData(@Param("dictDataTable") String dictDataTable , @Param("dictType") String dictType , @Param("status") String status);

    /**
     * 查询业务行为分表内的信息
     *
     * @param yqActTable 业务行为分表
     * @return 查询业务行为分表内的信息
     */
    public List<Map<String,Object>> selectYqact(@Param("yqActTable") String yqActTable , @Param("daType") String daType , @Param("daFolderId") Long daFolderId);

//    /**
//     * 查询盘规格
//     *
//     * @param yqPgg 盘规格主键
//     * @return 盘规格
//     */
//    public YqPgg selectYqPggByPggId(YqPgg yqPgg);
//
//    /**
//     * 查询盘规格列表
//     *
//     * @param yqPgg 盘规格
//     * @return 盘规格集合
//     */
//    public List<YqPgg> selectYqPggList(YqPgg yqPgg);
//
//    /**
//     * 新增盘规格
//     *
//     * @param yqPgg 盘规格
//     * @return 结果
//     */
//    public int insertYqPgg(YqPgg yqPgg);
//
//    /**
//     * 修改盘规格
//     *
//     * @param yqPgg 盘规格
//     * @return 结果
//     */
//    public int updateYqPgg(YqPgg yqPgg);
//
//    /**
//     * 删除盘规格
//     *
//     * @param yqPgg 盘规格主键
//     * @return 结果
//     */
//    public int deleteYqPggByPggId(YqPgg yqPgg);
//
//    /**
//     * 批量删除盘规格
//     *
//     * @param pggIds 需要删除的数据主键集合
//     * @return 结果
//     */
//    public int deleteYqPggByPggIds(Long[] pggIds);
//
//    /**
//     * 盘规格判重（根据名称是否相同）
//     *
//     * @param yqPgg 盘规格
//     * @return 结果
//     */
//    public int isOnly(YqPgg yqPgg);
}
